1. Field of the Invention
The present invention generally relates to multicast transmissions on network processors and, more particularly, to a method of performing multicast transmission on a network processor more efficiently than previous approaches.
2. Background Description
In implementing a multicast transmission scheme on a network processor, several complications that do not arise in a unicast scheme must be addressed. For example, when transmitting a frame or frames to a single target (i.e., unicast transmission), buffers associated with a frame (i.e., all associated data stored in memory buffers) may be returned to the free buffer queue (i.e., linked list of available memory buffers for frame data) as the data is read from each buffer. However, in a multicast scenario where several target locations exist, buffers associated with a frame may not be returned directly to the free queue but instead must be returned by xe2x80x9cre-walkingxe2x80x9d the linked list after the final multicast transmission has occurred. Another complication in the multicast problem that doesn""t arise for unicast transmission is the possibility that each multicast target location may require a different starting point within the reference frame or require that additional information be added. Typical solutions to these problems involve creating an entire copy of the reference frame for each multicast request (hence for each multicast target). Creating multiple copies solves the problem but requires leasing many memory buffers to satisfy the multicast request and therefore burdens system performance.
If instead of creating multiple copies of the frame, the multicast transmission is implemented by linking to the reference frame, then, because some ports may operate at a higher performance level than others, port performance discrepancies become an issue that must be addressed. In particular, linking back to a reference frame may cause problems because the last frame to start transmission may not be the last frame to finish. This discrepancy between the starting and stopping frames creates a problem of knowing when to return the reference frame buffers back to the free buffer queue. In particular, one cannot simply return the buffers after the starting frame has finished. One solution is to wait until all multicast transmissions are complete, but again such an approach may hamper system performance unnecessarily.
In a high performance network processor, a novel solution that minimizes multicast transmission memory requirements and accounts for port performance discrepancies is needed.
It is therefore an object of the present invention to provide data structures, a method, and an associated transmission system for multicast transmission on network processors in order both to minimize multicast transmission memory requirements and to account for port performance discrepancies.
According to the invention, the new approach eliminates the need to copy the entire frame for each multicast instance (i.e., each multicast target), thereby both reducing memory requirements and solving problems due to port performance discrepancies. In addition, the invention provides a means of returning leased buffers to the free queue as they are used (independent of when other instances complete transmission) and uses a counter to determine when all instances are transmitted so that a reference frame can likewise be returned to the free queue.